interface iFunc {
  [key: string]: (...arg: any) => any
}

let methodsList: iFunc = {
  click: () => { console.log('1'); },
  hover: () => { console.log('2'); },
  keyup: () => { console.log('3'); }
}

const mapMethods = (arr: Array<string>): object => {
  let obj: iFunc = {}

  arr.map(item => {
    obj[item] = methodsList[item]
  })

  return obj
}

export default mapMethods
